.TH UXPLAY "1" "September 2023" "1.66" "User Commands"
.SH NAME
uxplay \- start AirPlay server
.SH SYNOPSIS
.B uxplay
[\fI\,-n name\/\fR] [\fI\,-s wxh\/\fR] [\fI\,-p \/\fR[\fI\,n\/\fR]] [more \fI OPTIONS \/\fR ...]
.SH DESCRIPTION
UxPlay 1.66: An open\-source AirPlay mirroring (+ audio streaming) server:
.SH OPTIONS
.TP
.B
\fB\-n\fR name   Specify the network name of the AirPlay server
.TP
\fB\-nh\fR       Do \fBNOT\fR append "@\fIhostname\fR" at end of AirPlay server name
.TP
\fB\-vsync\fI[x]\fR Mirror mode: sync audio to video using timestamps (default)
.IP
   \fIx\fR is optional audio delay: millisecs, decimal, can be neg.
.TP
\fB\-vsync\fR no Switch off audio/(server)video timestamp synchronization.
.TP
\fB\-async\fR[\fIx\fR] Audio-Only mode: sync audio to client video (default: no).
.TP
\fB\-async\fR no Switch off audio/(client)video timestamp synchronization.
.TP
\fB\-s\fR wxh[@r]Set display resolution [refresh_rate] default 1920x1080[@60]
.TP
\fB\-o\fR        Set display "overscanned" mode on (not usually needed)
.TP
\fB-fs\fR       Full-screen (only works with X11, Wayland and VAAPI)
.TP
\fB\-p\fR        Use legacy ports UDP 6000:6001:7011 TCP 7000:7001:7100
.TP
\fB\-p\fR n      Use TCP and UDP ports n,n+1,n+2. range 1024\-65535
.IP
   use "\-p n1,n2,n3" to set each port, "n1,n2" for n3 = n2+1
.IP
   "\-p tcp n" or "\-p udp n" sets TCP or UDP ports separately.
.PP
.TP
\fB\-avdec\fR    Force software h264 video decoding with libav decoder.
.TP
\fB\-vp\fI prs \fR  Choose GStreamer h264 parser; default "h264parse"
.TP
\fB\-vd\fI dec \fR  Choose GStreamer h264 decoder; default "decodebin"
.IP
   choices: (software) avdec_h264; (hardware) v4l2h264dec,
.IP
   nvdec, nvh264dec, vaapih264dec, vtdec, ...
.TP
\fB\-vc\fI cnv \fR  Choose GStreamer videoconverter; default "videoconvert"
.IP
   another choice when using v4l2h264dec: v4l2convert.
.TP
\fB\-vs\fI sink\fR  Choose the GStreamer videosink; default "autovideosink"
.IP
   choices: ximagesink,xvimagesink,vaapisink,glimagesink,
.IP
   gtksink,waylandsink,osxvideosink,kmssink,d3d11videosink,...
.PP
.TP
\fB\-vs\fR 0     Streamed audio only, with no video display window.
.TP
\fB\-v4l2\fR     Use Video4Linux2 for GPU hardware h264 video decoding.
.TP
\fB\-bt709\fR    A workaround (bt709 color) that may be needed with -rpi.
.TP
\fB\-rpi\fR      Same as "-v4l2" (for RPi=Rasberry Pi).
.TP
\fB\-rpigl\fR    Same as "-rpi -vs glimagesink" for RPi.
.TP
\fB\-rpifb\fR    Same as "-rpi -vs kmssink" for RPi using framebuffer.
.TP
\fB\-rpiwl\fR    Same as "-rpi -vs waylandsink" for RPi using Wayland.
.TP
\fB\-as\fI sink\fR  Choose the GStreamer audiosink; default "autoaudiosink"
.IP
   choices:pulsesink,alsasink,pipewiresink,osssink,oss4sink,
.IP
   jackaudiosink,osxaudiosink,wasapisink,directsoundsink,..
.PP
.TP
\fB\-as\fR 0     (or \fB\-a\fR) Turn audio off, streamed video only.
.TP
\fB\-al\fR x     Audio latency in seconds (default 0.25) reported to client.
.TP
\fB\-ca\fI fn \fR   In Airplay Audio (ALAC) mode, write cover-art to file fn.
.TP
\fB\-reset\fR n  Reset after 3n seconds client silence (default 5, 0=never).
.TP
\fB\-nc\fR       Do not close video window when client stops mirroring
.TP
\fB\-nohold\fR   Drop current connection when new client connects.
.TP
\fB\-restrict\fR Restrict clients to those specified by "-allow deviceID".
.IP
   Uxplay displays deviceID when a client attempts to connect.
.IP
   Use "-restrict no" for no client restrictions (default).
.PP
\fB\-allow\fR id Permit deviceID = id to connect if restrictions are imposed.
.TP
\fB\-block\fR id Always block connections from deviceID = id.
.TP
\fB\-FPSdata\fR  Show video-streaming performance reports sent by client.
.TP
\fB\-fps\fR n    Set maximum allowed streaming framerate, default 30
.TP
\fB\-f\fR {H|V|I}Horizontal|Vertical flip, or both=Inversion=rotate 180 deg
.TP
\fB\-r\fR {R|L}  Rotate 90 degrees Right (cw) or Left (ccw)
.TP
\fB\-m\fR        Use random MAC address (use for concurrent UxPlay's)
.TP
\fB\-vdmp\fR [n] Dump h264 video output to "fn.h264"; fn="videodump", change
.IP
   with "-vdmp [n] filename". If [n] is given, file fn.x.h264
.IP
   x=1,2,.. opens whenever a new SPS/PPS NAL arrives, and <=n
.IP
   NAL units are dumped.
.PP
.TP
\fB\-admp\fR [n] Dump audio output to "fn.x.fmt", fmt ={aac, alac, aud}, x
.IP
   =1,2,..; fn="audiodump"; change with "-admp [n] filename".
.IP
   x increases when audio format changes. If n is given, <= n
.IP
   audio packets are dumped. "aud"= unknown format.
.PP
.TP
\fB\-d\fR        Enable debug logging
.TP
\fB\-v\fR        Displays version information
.TP
\fB\-h\fR        Displays help information
.SH
FILES
.TP
Options in one of $UXPLAYRC, or ~/.uxplayrc, or  ~/.config/uxplayrc
.TP
are applied first (command-line options may modify them). uxplayrc format:
.TP
one option per line,\fI no\fR initial "-"; lines beginning with "#" ignored.
.SH
AUTHORS
.TP
Various, see website or distribution.
.SH
COPYRIGHT
.TP
Various, see website or distribution.  License: GPL v3+: GNU GPL version 3 or later.
.TP
(some parts LGPL v.2.1+ or MIT).
.SH
SEE ALSO
.TP
Website: <https://github.com/FDH2/UxPlay>
